ããã³ããšã³ããšããžã³ã³ãã¥ãŒãã£ã³ã°ãšãã«ããªãŒãžã§ã³åé·æ§ããã°ããŒãã«ã¢ããªã®å¯çšæ§ãããã©ãŒãã³ã¹ãå埩æ§ãé«ããæ¹æ³ãæ¢ããŸããå°ççãã§ã€ã«ãªãŒããŒæŠç¥ãšUXæé©åãåŠã³ãŸãããã
ããã³ããšã³ããšããžã³ã³ãã¥ãŒãã£ã³ã°ã®å°ççãã§ã€ã«ãªãŒããŒïŒã°ããŒãã«ã¢ããªã±ãŒã·ã§ã³ã®ããã®ãã«ããªãŒãžã§ã³åé·æ§
仿¥ã®çžäºæ¥ç¶ãããäžçã§ã¯ãã¢ããªã±ãŒã·ã§ã³ã¯äžçäžã®ãŠãŒã¶ãŒã«ãšã£ãŠã¢ã¯ã»ã¹å¯èœã§ãããã©ãŒãã³ã¹ãé«ããå埩åãããå¿ èŠããããŸããåäžé害ç¹ã¯é倧ãªãµãŒãã¹äžæã«ã€ãªããããŠãŒã¶ãŒãšã¯ã¹ããªãšã³ã¹ãåçããã©ã³ãã®è©å€ã«åœ±é¿ãäžããå¯èœæ§ããããŸããããã³ããšã³ããšããžã³ã³ãã¥ãŒãã£ã³ã°ã¯ããã«ããªãŒãžã§ã³åé·æ§ãšå°ççãã§ã€ã«ãªãŒããŒæŠç¥ãšçµã¿åãããããšã§ããããã®ãªã¹ã¯ã軜æžããããã®å ç¢ãªãœãªã¥ãŒã·ã§ã³ãæäŸããŸãããã®èšäºã§ã¯ããããã®æŠå¿µã®è€éããæãäžããã°ããŒãã«ã¢ããªã±ãŒã·ã§ã³åãã«é«å¯çšæ§ã§é«æ§èœãªããã³ããšã³ãã€ã³ãã©ãå®è£ ããããã®å®è·µçãªæŽå¯ãšã¬ã€ãã³ã¹ãæäŸããŸãã
å°ççãã§ã€ã«ãªãŒããŒã®å¿ èŠæ§ãçè§£ãã
åŸæ¥ã®ã¢ããªã±ãŒã·ã§ã³ã¢ãŒããã¯ãã£ã¯ããã°ãã°äžå€®éæš©åã®ããŒã¿ã»ã³ã¿ãŒã«äŸåããŠããããããããã«ããã¯ãåäžé害ç¹ã«ãªãå¯èœæ§ããããŸããå°ççãã§ã€ã«ãªãŒããŒã¯ãã¢ããªã±ãŒã·ã§ã³ã³ã³ããŒãã³ããè€æ°ã®å°ççãªãŒãžã§ã³ã«åæ£ãããããšã§ãã®åé¡ã«å¯ŸåŠããŸããããã«ããããããªãŒãžã§ã³ã§é害ïŒèªç¶çœå®³ãåé»ããããã¯ãŒã¯ã®åé¡ãªã©ïŒãçºçããå Žåã§ãããã©ãã£ãã¯ã¯èªåçã«æ£åžžãªãªãŒãžã§ã³ã«ãªãã€ã¬ã¯ããããã¢ããªã±ãŒã·ã§ã³ã®å¯çšæ§ãç¶æãããŸãã
ã°ããŒãã«ãªeã³ããŒã¹ãã©ãããã©ãŒã ãèããŠã¿ãŸããããåç±³ã«ãããã©ã€ããªããŒã¿ã»ã³ã¿ãŒããªãã©ã€ã³ã«ãªã£ãå ŽåããšãŒããããã¢ãžã¢ã®ãŠãŒã¶ãŒã¯ãŠã§ããµã€ãã«ã¢ã¯ã»ã¹ã§ããªããªããŸããå°ççãã§ã€ã«ãªãŒããŒãããã°ããã©ãã£ãã¯ã¯ãšãŒããããã¢ãžã¢ã®ããŒã¿ã»ã³ã¿ãŒã«ã·ãŒã ã¬ã¹ã«ã«ãŒãã£ã³ã°ãããç¶ç¶çãªãµãŒãã¹ãä¿èšŒãããŸãã
å°ççãã§ã€ã«ãªãŒããŒã®å©ç¹ïŒ
- å¯çšæ§ã®åäžïŒ é害çºçæã«æ£åžžãªãªãŒãžã§ã³ã«èªåçã«åãæ¿ããããšã§ãããŠã³ã¿ã€ã ãæå°éã«æããŸãã
- ããã©ãŒãã³ã¹ã®åäžïŒ ãŠãŒã¶ãŒã«æãè¿ããªãŒãžã§ã³ããã³ã³ãã³ããé ä¿¡ããããšã§ãã¬ã€ãã³ã·ãåæžããŸãã
- å埩åã®åŒ·åïŒ ãªãŒãžã§ã³èŠæš¡ã®é害ãçœå®³ããä¿è·ããŸãã
- ã¹ã±ãŒã©ããªãã£ïŒ å€åããéèŠã«åãããŠãç°ãªããªãŒãžã§ã³ã§ãªãœãŒã¹ãã¹ã±ãŒãªã³ã°ã§ããŸãã
ããã³ããšã³ããšããžã³ã³ãã¥ãŒãã£ã³ã°ïŒã°ããŒãã«ããã©ãŒãã³ã¹ã®åºç€
ããã³ããšã³ããšããžã³ã³ãã¥ãŒãã£ã³ã°ã¯ãã¢ããªã±ãŒã·ã§ã³ããžãã¯ãšã³ã³ãã³ãããšã³ããŠãŒã¶ãŒã«è¿ã¥ããããšã§ãã¬ã€ãã³ã·ãå€§å¹ ã«åæžããããã©ãŒãã³ã¹ãåäžãããŸããããã³ããšã³ãã³ã³ããŒãã³ãïŒHTMLãCSSãJavaScriptãç»åïŒãäžçäžã«é 眮ããããšããžãµãŒããŒã«ãããã€ããããšã§ãããé«éã§å¿çæ§ã®é«ããŠãŒã¶ãŒãšã¯ã¹ããªãšã³ã¹ãæäŸã§ããŸãã
ã³ã³ãã³ãããªããªãŒãããã¯ãŒã¯ïŒCDNïŒã¯ãããã³ããšã³ããšããžã³ã³ãã¥ãŒãã£ã³ã°ã®éèŠãªèŠçŽ ã§ããCDNã¯éçã¢ã»ããïŒç»åãCSSãJavaScriptïŒããã£ãã·ã¥ãããŠãŒã¶ãŒã«è¿ããšããžãµãŒããŒããé ä¿¡ããŸããããã«ããããªãªãžã³ãµãŒããŒã®è² è·ã軜æžãããã¬ã€ãã³ã·ãæå°éã«æããããŸãã代衚çãªCDNãããã€ããŒã«ã¯ãAkamaiãCloudflareãFastlyãAmazon CloudFrontãªã©ããããŸãã
CDNã«ãšã©ãŸãããçŸä»£ã®ããã³ããšã³ããšããžã³ã³ãã¥ãŒãã£ã³ã°ã¯ããšããžã§å®è¡ããããµãŒããŒã¬ã¹é¢æ°ã«ãŸã§åã³ãŸãããããã®é¢æ°ã¯ãèªèšŒãèªå¯ããªã¯ãšã¹ãæäœãã¬ã¹ãã³ã¹å€æãªã©ã®ã¿ã¹ã¯ãå®è¡ã§ããããã©ãŒãã³ã¹ãšã»ãã¥ãªãã£ãããã«æé©åããŸãã
ããã³ããšã³ããšããžã³ã³ãã¥ãŒãã£ã³ã°ã®äž»èŠèŠçŽ ïŒ
- CDNïŒ éçã¢ã»ããããã£ãã·ã¥ãããšããžãµãŒããŒããé ä¿¡ããŸãã
- ãšããžãµãŒããŒïŒ ãµãŒããŒã¬ã¹é¢æ°ãå®è¡ãããšããžã§ã¢ããªã±ãŒã·ã§ã³ããžãã¯ãå®è¡ããŸãã
- ãµãŒãã¹ã¯ãŒã«ãŒïŒ ãã©ãŠã¶ã§ã®ãªãã©ã€ã³æ©èœãšããã¯ã°ã©ãŠã³ãåæãå¯èœã«ããŸãã
- ç»åæé©åïŒ ããŸããŸãªããã€ã¹ããããã¯ãŒã¯æ¡ä»¶ã«åãããŠç»åãèªåçã«æé©åããŸãã
ãã«ããªãŒãžã§ã³åé·æ§ïŒããã³ããšã³ããå°ççã«åæ£ããã
ãã«ããªãŒãžã§ã³åé·æ§ãšã¯ãããã³ããšã³ãã¢ããªã±ãŒã·ã§ã³ãè€æ°ã®å°ççãªãŒãžã§ã³ã«ããã£ãŠãããã€ããããšã§ããããã«ããåé·æ§ãšå埩åãæäŸããããããªãŒãžã§ã³ã§é害ãçºçããå Žåã«ããã©ãã£ãã¯ãå¥ã®æ£åžžãªãªãŒãžã§ã³ã«ã«ãŒãã£ã³ã°ã§ããããã«ãªããŸããããã¯ãå ç¢ãªå°ççãã§ã€ã«ãªãŒããŒæŠç¥ã®éèŠãªéšåã§ãã
ããã«ã¯ãå€ãã®å Žåãç°ãªãã¯ã©ãŠããããã€ããŒã®ãªãŒãžã§ã³ïŒäŸïŒAWS US-East-1ãAWS EU-West-1ãAWS AP-Southeast-2ïŒã«åäžã®ããã³ããšã³ããããã€ã¡ã³ããã»ããã¢ããããããšãå«ãŸããŸããåãããã€ã¡ã³ãã¯èªå·±å®çµåã§ãããç¬ç«ããŠãã©ãã£ãã¯ãåŠçã§ããå¿ èŠããããŸãã
ãã«ããªãŒãžã§ã³ããã³ããšã³ããããã€ã¡ã³ãã®å®è£ ïŒ
- Infrastructure as Code (IaC)ïŒ TerraformãCloudFormationãPulumiãªã©ã®ããŒã«ã䜿çšããŠãè€æ°ã®ãªãŒãžã§ã³ã«ãããããã³ããšã³ãã€ã³ãã©ã®ãããã€ãšç®¡çãèªååããŸãã
- ç¶ç¶çã€ã³ãã°ã¬ãŒã·ã§ã³/ç¶ç¶çãããã€ã¡ã³ãïŒCI/CDïŒïŒ CI/CDãã€ãã©ã€ã³ãå®è£ ããŠãã³ãŒãã®å€æŽããã¹ãŠã®ãªãŒãžã§ã³ã«èªåçã«ãããã€ããŸãã
- ããŒã¿ããŒã¹ã¬ããªã±ãŒã·ã§ã³ïŒ ããã³ããšã³ããããã¯ãšã³ãããŒã¿ããŒã¹ã«äŸåããŠããå Žåã¯ãããŒã¿ããŒã¹ãè€æ°ã®ãªãŒãžã§ã³ã«ããã£ãŠè€è£œãããŠããããšã確èªããŸãã
- ããŒããã©ã³ã·ã³ã°ïŒ ã°ããŒãã«ããŒããã©ã³ãµãŒã䜿çšããŠãç°ãªããªãŒãžã§ã³ã«ãã©ãã£ãã¯ã忣ãããŸãã
- ã¢ãã¿ãªã³ã°ãšã¢ã©ãŒãïŒ å æ¬çãªã¢ãã¿ãªã³ã°ãšã¢ã©ãŒããèšå®ããŠãã©ã®ãªãŒãžã§ã³ã§ãåé¡ãæ€åºã§ããããã«ããŸãã
å°ççãã§ã€ã«ãªãŒããŒæŠç¥ïŒé害çºçæã®ãã©ãã£ãã¯ã«ãŒãã£ã³ã°
å°ççãã§ã€ã«ãªãŒããŒãšã¯ãé害ãçºçãããªãŒãžã§ã³ããæ£åžžãªãªãŒãžã§ã³ãžãã©ãã£ãã¯ãèªåçã«ãªãã€ã¬ã¯ãããããã»ã¹ã§ããããã¯éåžžãDNSããŒã¹ã®ãã§ã€ã«ãªãŒããŒãŸãã¯ã°ããŒãã«ããŒããã©ã³ã·ã³ã°ã䜿çšããŠå®çŸãããŸãã
DNSããŒã¹ã®ãã§ã€ã«ãªãŒããŒïŒ
DNSããŒã¹ã®ãã§ã€ã«ãªãŒããŒã§ã¯ãDNSã¬ã³ãŒããç°ãªããªãŒãžã§ã³ã®ç°ãªãIPã¢ãã¬ã¹ãæãããã«èšå®ããŸãããªãŒãžã§ã³ã§é害ãçºçãããšãDNSã¬ã³ãŒãã¯èªåçã«æŽæ°ãããæ£åžžãªãªãŒãžã§ã³ãæãããã«ãªããŸããããã¯ã·ã³ãã«ã§è²»çšå¯Ÿå¹æã®é«ããœãªã¥ãŒã·ã§ã³ã§ãããDNSã®å€æŽãäŒæãããŸã§ã«æéããããå Žåãããããã®çµæãçæéã®ããŠã³ã¿ã€ã ãçºçããå¯èœæ§ããããŸãã
äŸïŒ Route 53ïŒAWSã®DNSãµãŒãã¹ïŒã䜿çšãããšãåãªãŒãžã§ã³ã®EC2ã€ã³ã¹ã¿ã³ã¹ã®ãã«ã¹ãã§ãã¯ãèšå®ã§ããŸãããã«ã¹ãã§ãã¯ã倱æãããšãRoute 53ã¯èªåçã«DNSã¬ã³ãŒããæŽæ°ããæ£åžžãªãªãŒãžã§ã³ã®ã€ã³ã¹ã¿ã³ã¹ãæãããã«ããŸãã
ã°ããŒãã«ããŒããã©ã³ã·ã³ã°ïŒ
ã°ããŒãã«ããŒããã©ã³ã·ã³ã°ã¯ãããŒããã©ã³ãµãŒã䜿çšããŠè€æ°ã®ãªãŒãžã§ã³ã«ãã©ãã£ãã¯ã忣ãããŸããããŒããã©ã³ãµãŒã¯åãªãŒãžã§ã³ã®æ£åžžæ§ãç£èŠããèªåçã«ãã©ãã£ãã¯ãæ£åžžãªãªãŒãžã§ã³ã«ãªãã€ã¬ã¯ãããŸããããã«ãããããŒããã©ã³ãµãŒãéå®³ãæ€åºãããªã¢ã«ã¿ã€ã ã§ãã©ãã£ãã¯ããªãã€ã¬ã¯ãã§ãããããDNSããŒã¹ã®ãã§ã€ã«ãªãŒããŒãããé«éãªãã§ã€ã«ãªãŒããŒãå¯èœã«ãªããŸãã
äŸïŒ Azure Traffic ManagerãGoogle Cloud Load Balancingã䜿çšãããšãç°ãªãAzureãŸãã¯GCPãªãŒãžã§ã³ã«ããããã³ããšã³ããããã€ã¡ã³ãã«ãã©ãã£ãã¯ã忣ãããã°ããŒãã«ããŒããã©ã³ãµãŒãèšå®ã§ããŸããããŒããã©ã³ãµãŒã¯åãªãŒãžã§ã³ã®æ£åžžæ§ãç£èŠããèªåçã«ãã©ãã£ãã¯ãæ£åžžãªãªãŒãžã§ã³ã«ãªãã€ã¬ã¯ãããŸãã
å°ççãã§ã€ã«ãªãŒããŒã®å®è£ ïŒ
- ãã«ã¹ãã§ãã¯ïŒ åãªãŒãžã§ã³ã§ã®ããã³ããšã³ããããã€ã¡ã³ãã®æ£åžžæ§ãç£èŠããããã«ãå ç¢ãªãã«ã¹ãã§ãã¯ãå®è£ ããŸãããããã®ãã«ã¹ãã§ãã¯ã§ã¯ãã¢ããªã±ãŒã·ã§ã³ãæ£ããå®è¡ãããŠãããå¿ èŠãªãªãœãŒã¹ã«ã¢ã¯ã»ã¹ã§ããããšã確èªããå¿ èŠããããŸãã
- ãã§ã€ã«ãªãŒããŒããªã·ãŒïŒ ãã§ã€ã«ãªãŒããŒãããªã¬ãŒããåºæºãšå®è¡ãããæé ãæèšãããæç¢ºãªãã§ã€ã«ãªãŒããŒããªã·ãŒãå®çŸ©ããŸãã
- èªååïŒ ããŠã³ã¿ã€ã ãæå°éã«æããããã«ããã§ã€ã«ãªãŒããŒããã»ã¹ãèªååããŸããããã¯ãã¹ã¯ãªããããªãŒã±ã¹ãã¬ãŒã·ã§ã³ããŒã«ã䜿çšããŠå®çŸã§ããŸãã
- ãã¹ãïŒ ãã§ã€ã«ãªãŒããŒã¡ã«ããºã ãæåŸ ã©ããã«æ©èœããããšã確èªããããã«ã宿çã«ãã¹ãããŸããããã¯ãç°ãªããªãŒãžã§ã³ã§é害ãã·ãã¥ã¬ãŒãããããšã§å®è¡ã§ããŸãã
é©åãªå°ççãã§ã€ã«ãªãŒããŒæŠç¥ã®éžæ
æé©ãªå°ççãã§ã€ã«ãªãŒããŒæŠç¥ã¯ãç¹å®ã®èŠä»¶ãšå¶çŽã«ãã£ãŠç°ãªããŸããèæ ®ãã¹ãèŠçŽ ã¯æ¬¡ã®ãšããã§ãã
- ç®æšåŸ©æ§æéïŒRTOïŒïŒ ã¢ããªã±ãŒã·ã§ã³ã§èš±å®¹ãããæå€§ã®ããŠã³ã¿ã€ã ãéåžžãã°ããŒãã«ããŒããã©ã³ã·ã³ã°ã¯DNSããŒã¹ã®ãã§ã€ã«ãªãŒããŒãããRTOãçããªããŸãã
- ã³ã¹ãïŒ DNSããŒã¹ã®ãã§ã€ã«ãªãŒããŒã¯ãäžè¬çã«ã°ããŒãã«ããŒããã©ã³ã·ã³ã°ãããå®äŸ¡ã§ãã
- è€éãïŒ DNSããŒã¹ã®ãã§ã€ã«ãªãŒããŒã¯ãã°ããŒãã«ããŒããã©ã³ã·ã³ã°ãããå®è£ ãç°¡åã§ãã
- ãã©ãã£ãã¯ãã¿ãŒã³ïŒ ã¢ããªã±ãŒã·ã§ã³ã®ãã©ãã£ãã¯ãã¿ãŒã³ãäºæž¬å¯èœãªå Žåã¯ãDNSããŒã¹ã®ãã§ã€ã«ãªãŒããŒã䜿çšã§ããå¯èœæ§ããããŸãããã©ãã£ãã¯ãã¿ãŒã³ãäºæž¬äžå¯èœãªå Žåã¯ãã°ããŒãã«ããŒããã©ã³ã·ã³ã°ã®æ¹ãé©ããŠãããããããŸããã
å³ããå¯çšæ§èŠä»¶ãæã€ããã·ã§ã³ã¯ãªãã£ã«ã«ãªã¢ããªã±ãŒã·ã§ã³ã«ã¯ãäžè¬çã«ã°ããŒãã«ããŒããã©ã³ã·ã³ã°ãæšå¥šããããœãªã¥ãŒã·ã§ã³ã§ããéèŠåºŠã®äœãã¢ããªã±ãŒã·ã§ã³ã«ã¯ãDNSããŒã¹ã®ãã§ã€ã«ãªãŒããŒã§ååãªå ŽåããããŸãã
ã±ãŒã¹ã¹ã¿ãã£ãšäºäŸ
ã±ãŒã¹ã¹ã¿ãã£1ïŒã°ããŒãã«ã¡ãã£ã¢äŒæ¥
ã°ããŒãã«ãªèŠèŽè ãæã€å€§æã¡ãã£ã¢äŒæ¥ã¯ãã¹ããªãŒãã³ã°ãµãŒãã¹ã®24æé365æ¥ã®å¯çšæ§ã確ä¿ããããã«ãå°ççãã§ã€ã«ãªãŒããŒãåãããã«ããªãŒãžã§ã³ã®ããã³ããšã³ãã¢ãŒããã¯ãã£ãå®è£ ããŸããã圌ãã¯CDNã䜿çšããŠéçã¢ã»ããããã£ãã·ã¥ããããã³ããšã³ãã¢ããªã±ãŒã·ã§ã³ãè€æ°ã®AWSãªãŒãžã§ã³ã«ãããã€ããŸãããDNSããŒã¹ã®ãã§ã€ã«ãªãŒããŒã«ã¯Route 53ã䜿çšããŸãããåç±³ã§ã®ãªãŒãžã§ã³é害ã®éããã©ãã£ãã¯ã¯èªåçã«ãšãŒãããã«ãªãã€ã¬ã¯ããããäžçã®ä»ã®å°åã®ãŠãŒã¶ãŒãã¹ããªãŒãã³ã°ãµãŒãã¹ã«ã¢ã¯ã»ã¹ãç¶ããããããã«ããŸããã
ã±ãŒã¹ã¹ã¿ãã£2ïŒEã³ããŒã¹ãã©ãããã©ãŒã
ã°ããŒãã«ãªé¡§å®¢åºç€ãæã€eã³ããŒã¹ãã©ãããã©ãŒã ã¯ãããã©ãŒãã³ã¹ãšå¯çšæ§ãåäžãããããã«ãã°ããŒãã«ããŒããã©ã³ã·ã³ã°ãåãããã«ããªãŒãžã§ã³ã®ããã³ããšã³ãã¢ãŒããã¯ãã£ãå®è£ ããŸããã圌ãã¯ããã³ããšã³ãã¢ããªã±ãŒã·ã§ã³ãè€æ°ã®AzureãªãŒãžã§ã³ã«ãããã€ããã°ããŒãã«ããŒããã©ã³ã·ã³ã°ã«Azure Traffic Managerã䜿çšããŸãããããã«ãããäžçåå°ã®ãŠãŒã¶ãŒã®ã¬ã€ãã³ã·ãççž®ããããªãŒãžã§ã³èŠæš¡ã®é害ã«å¯Ÿããå埩åãæäŸãããŸããããŸãããšããžã§ãµãŒããŒã¬ã¹é¢æ°ãå®è£ ããŠãã³ã³ãã³ããããŒãœãã©ã€ãºãããŠãŒã¶ãŒãšã¯ã¹ããªãšã³ã¹ãæé©åããŸããã
äŸïŒå°çäœçœ®æ å ±ã®ããã®ãµãŒããŒã¬ã¹ãšããžé¢æ°
以äžã¯ããŠãŒã¶ãŒã®IPã¢ãã¬ã¹ã«åºã¥ããŠå°ççäœçœ®ãç¹å®ããããã«ãšããžã«ãããã€ã§ãããµãŒããŒã¬ã¹é¢æ°ã®äŸã§ãã
async function handler(event) {
const request = event.request;
const ipAddress = request.headers['x-forwarded-for'] || request.headers['cf-connecting-ip'] || request.clientIPAddress;
// Use a geolocation API to determine the user's location based on their IP address.
const geolocation = await fetch(`https://api.example.com/geolocation?ip=${ipAddress}`);
const locationData = await geolocation.json();
request.headers['x-user-country'] = locationData.country_code;
return request;
}
ãã®é¢æ°ã¯ããŠãŒã¶ãŒã®å Žæã«åºã¥ããŠã³ã³ãã³ããããŒãœãã©ã€ãºãããããŠãŒã¶ãŒãããŒã«ã©ã€ãºãããããŒãžã§ã³ã®ãŠã§ããµã€ãã«ãªãã€ã¬ã¯ããããããããã«äœ¿çšã§ããŸãã
ã¢ãã¿ãªã³ã°ãšå¯èŠ³æž¬æ§
广çãªã¢ãã¿ãªã³ã°ãšå¯èŠ³æž¬æ§ã¯ãå¥å šã§å埩åã®ãããã«ããªãŒãžã§ã³ããã³ããšã³ãã€ã³ãã©ãç¶æããããã«äžå¯æ¬ ã§ããåé¡ãè¿ éãã€æ£ç¢ºã«æ€åºããæ ¹æ¬åå ã蚺æããæ¯æ£æªçœ®ãè¬ããå¿ èŠããããŸãã
ç£èŠãã¹ãäž»èŠã¡ããªã¯ã¹ïŒ
- å¯çšæ§ïŒ ã¢ããªã±ãŒã·ã§ã³ããŠãŒã¶ãŒã«å©çšå¯èœãªæéã®å²åã
- ã¬ã€ãã³ã·ïŒ ãªã¯ãšã¹ããåŠçããããŸã§ã«ãããæéã
- ãšã©ãŒçïŒ ãšã©ãŒã«ãªããªã¯ãšã¹ãã®å²åã
- ãªãœãŒã¹äœ¿çšçïŒ ããã³ããšã³ããããã€ã¡ã³ãã®CPUãã¡ã¢ãªããããã¯ãŒã¯äœ¿çšçã
- ãã«ã¹ãã§ãã¯ã¹ããŒã¿ã¹ïŒ åãªãŒãžã§ã³ã§ã®ãã«ã¹ãã§ãã¯ã®ã¹ããŒã¿ã¹ã
ã¢ãã¿ãªã³ã°ãšå¯èŠ³æž¬æ§ã®ããã®ããŒã«ïŒ
- CloudWatch (AWS)ïŒ AWSãªãœãŒã¹ã®ã¢ãã¿ãªã³ã°ããã³ãã®ã³ã°ãµãŒãã¹ãæäŸããŸãã
- Azure Monitor (Azure)ïŒ AzureãªãœãŒã¹ã®ã¢ãã¿ãªã³ã°ããã³èšºæãµãŒãã¹ãæäŸããŸãã
- Google Cloud Monitoring (GCP)ïŒ GCPãªãœãŒã¹ã®ã¢ãã¿ãªã³ã°ããã³ãã®ã³ã°ãµãŒãã¹ãæäŸããŸãã
- PrometheusïŒ ãªãŒãã³ãœãŒã¹ã®ã¢ãã¿ãªã³ã°ããã³ã¢ã©ãŒãããŒã«ãããã§ãã
- GrafanaïŒ ãªãŒãã³ãœãŒã¹ã®ããŒã¿å¯èŠåããã³ã¢ãã¿ãªã³ã°ãã©ãããã©ãŒã ã§ãã
- SentryïŒ ãšã©ãŒãã©ããã³ã°ããã³ããã©ãŒãã³ã¹ã¢ãã¿ãªã³ã°ãã©ãããã©ãŒã ã§ãã
éèŠãªã¡ããªã¯ã¹ãäºåã«å®çŸ©ããããããå€ãè¶ ãããšãã«éç¥ããã¢ã©ãŒãã«ãŒã«ãå®è£ ããŸããããã«ããããŠãŒã¶ãŒã«åœ±é¿ãåã¶åã«åé¡ãç©æ¥µçã«ç¹å®ãã察åŠããããšãã§ããŸãã
ã»ãã¥ãªãã£ã«é¢ããèæ ®äºé
ãã«ããªãŒãžã§ã³ã®ããã³ããšã³ãã€ã³ãã©ããããã€ããéãã»ãã¥ãªãã£ã¯æãéèŠã§ãã以äžãå«ãããŸããŸãªè åšããã¢ããªã±ãŒã·ã§ã³ãä¿è·ããå¿ èŠããããŸãã
- 忣åãµãŒãã¹åŠšå®³ïŒDDoSïŒæ»æïŒ ãµãŒããŒããã©ãã£ãã¯ã§å§åããæ£èŠã®ãŠãŒã¶ãŒãå©çšã§ããªãããæ»æã
- ã¯ãã¹ãµã€ãã¹ã¯ãªããã£ã³ã°ïŒXSSïŒæ»æïŒ ãŠã§ããµã€ãã«æªæã®ããã¹ã¯ãªãããæ³šå ¥ããæ»æã
- SQLã€ã³ãžã§ã¯ã·ã§ã³æ»æïŒ ããŒã¿ããŒã¹ã«æªæã®ããSQLã³ãŒããæ³šå ¥ããæ»æã
- ãããæ»æïŒ ãããã䜿çšããŠããŒã¿ãã¹ã¯ã¬ã€ãã³ã°ããããåœã®ã¢ã«ãŠã³ããäœæãããããã®ä»ã®æªæã®ããæŽ»åãè¡ã£ããããæ»æã
ã»ãã¥ãªãã£ã®ãã¹ããã©ã¯ãã£ã¹ïŒ
- Webã¢ããªã±ãŒã·ã§ã³ãã¡ã€ã¢ãŠã©ãŒã«ïŒWAFïŒïŒ WAFã䜿çšããŠãäžè¬çãªWebæ»æããã¢ããªã±ãŒã·ã§ã³ãä¿è·ããŸãã
- DDoSä¿è·ïŒ DDoSä¿è·ãµãŒãã¹ã䜿çšããŠãDDoSæ»æã軜æžããŸãã
- ã¬ãŒãå¶éïŒ ã¬ãŒãå¶éãå®è£ ããŠããããããµãŒããŒãå§åããã®ãé²ããŸãã
- ã³ã³ãã³ãã»ãã¥ãªãã£ããªã·ãŒïŒCSPïŒïŒ CSPã䜿çšããŠããŠã§ããµã€ãããªãœãŒã¹ãããŒãã§ãããœãŒã¹ãå¶éããŸãã
- 宿çãªã»ãã¥ãªãã£ç£æ»ïŒ 宿çãªã»ãã¥ãªãã£ç£æ»ã宿œããŠãè匱æ§ãç¹å®ãã察åŠããŸãã
- æå°æš©éã®ååïŒ ãŠãŒã¶ãŒãšãµãŒãã¹ã«ã¯ãå¿ èŠæå°éã®æš©éã®ã¿ãä»äžããŸãã
ã³ã¹ãæé©å
ãã«ããªãŒãžã§ã³ã®ããã³ããšã³ãã€ã³ãã©ããããã€ããã«ã¯è²»çšããããå ŽåããããŸããã³ã¹ããæé©åããããã®ãã³ããããã€ã玹ä»ããŸãã
- é©åãªãµã€ãžã³ã°ïŒ ããã³ããšã³ããããã€ã¡ã³ãã«é©ããã€ã³ã¹ã¿ã³ã¹ãµã€ãºãéžæããŸãã
- ãªã¶ãŒããã€ã³ã¹ã¿ã³ã¹ïŒ ãªã¶ãŒããã€ã³ã¹ã¿ã³ã¹ã䜿çšããŠãã³ã³ãã¥ãŒããªãœãŒã¹ã®ã³ã¹ããåæžããŸãã
- ã¹ãããã€ã³ã¹ã¿ã³ã¹ïŒ ã¹ãããã€ã³ã¹ã¿ã³ã¹ã䜿çšããŠãã³ã³ãã¥ãŒããªãœãŒã¹ã®ã³ã¹ããåæžããŸããïŒæ¬çªç°å¢ã§ã®äœ¿çšã«ã¯æ³šæãå¿ èŠã§ãïŒ
- èªåã¹ã±ãŒãªã³ã°ïŒ èªåã¹ã±ãŒãªã³ã°ã䜿çšããŠãéèŠã«å¿ããŠããã³ããšã³ããããã€ã¡ã³ããèªåçã«ã¹ã±ãŒãªã³ã°ããŸãã
- ãã£ãã·ã³ã°ïŒ ãã£ãã·ã³ã°ã䜿çšããŠããªãªãžã³ãµãŒããŒã®è² è·ã軜æžããŸãã
- ããŒã¿è»¢éã³ã¹ãïŒ ãŠãŒã¶ãŒã«æãè¿ããªãŒãžã§ã³ããã³ã³ãã³ããé ä¿¡ããããšã§ãããŒã¿è»¢éã³ã¹ããæé©åããŸãã
- 宿çãªã³ã¹ãåæïŒ ã³ã¹ããç¶ç¶çã«ç£èŠã»åæããæ¹åã®äœå°ãããåéãç¹å®ããŸãã
ããã³ããšã³ãã®ãã¬ãŒã ã¯ãŒã¯ãšã©ã€ãã©ãª
å€ãã®çŸä»£çãªããã³ããšã³ããã¬ãŒã ã¯ãŒã¯ãã©ã€ãã©ãªã¯ããã«ããªãŒãžã§ã³ç°å¢ã«ãããã€å¯èœãªã¢ããªã±ãŒã·ã§ã³ã®æ§ç¯ã«é©ããŠããŸãã人æ°ã®ããéžæè¢ã«ã¯ä»¥äžã®ãããªãã®ããããŸãã
- ReactïŒ ãŠãŒã¶ãŒã€ã³ã¿ãŒãã§ãŒã¹ãæ§ç¯ããããã®JavaScriptã©ã€ãã©ãªã
- AngularïŒ TypeScriptããŒã¹ã®Webã¢ããªã±ãŒã·ã§ã³ãã¬ãŒã ã¯ãŒã¯ã
- Vue.jsïŒ ãŠãŒã¶ãŒã€ã³ã¿ãŒãã§ãŒã¹ãæ§ç¯ããããã®ããã°ã¬ãã·ãJavaScriptãã¬ãŒã ã¯ãŒã¯ã
- SvelteïŒ ãã«ãæã«ã³ã³ãã€ã«ãããã³ã³ããŒãã³ããã¬ãŒã ã¯ãŒã¯ã
- Next.js (React)ïŒ ãµãŒããŒã¬ã³ããªã³ã°ããã³éççæãããReactã¢ããªã±ãŒã·ã§ã³ãæ§ç¯ããããã®ãã¬ãŒã ã¯ãŒã¯ã
- Nuxt.js (Vue.js)ïŒ ãµãŒããŒã¬ã³ããªã³ã°ããã³éççæãããVue.jsã¢ããªã±ãŒã·ã§ã³ãæ§ç¯ããããã®ãã¬ãŒã ã¯ãŒã¯ã
ãããã®ãã¬ãŒã ã¯ãŒã¯ã¯ãã³ã³ããŒãã³ãããŒã¹ã®ã¢ãŒããã¯ãã£ãã«ãŒãã£ã³ã°ãç¶æ 管çããµãŒããŒãµã€ãã¬ã³ããªã³ã°ãªã©ã®æ©èœãæäŸããè€éãªããã³ããšã³ãã¢ããªã±ãŒã·ã§ã³ã®éçºãç°¡çŽ åã§ããŸãã
å°æ¥ã®ãã¬ã³ã
ããã³ããšã³ããšããžã³ã³ãã¥ãŒãã£ã³ã°ãšå°ççãã§ã€ã«ãªãŒããŒã®åéã¯åžžã«é²åããŠããŸããæ³šç®ãã¹ãå°æ¥ã®ãã¬ã³ããããã€ã玹ä»ããŸãã
- ãµãŒããŒã¬ã¹ãšããžã³ã³ãã¥ãŒãã£ã³ã°ïŒ ãšããžã§ã®ãµãŒããŒã¬ã¹é¢æ°ã®æ¡çšå¢å ã
- WebAssembly (Wasm)ïŒ ãã©ãŠã¶ããšããžã§é«æ§èœãªã³ãŒããå®è¡ããããã®WebAssemblyã®äœ¿çšã
- ãµãŒãã¹ã¡ãã·ã¥ïŒ ãšããžã«ãããã€ããããã€ã¯ããµãŒãã¹ã®ç®¡çãšã»ãã¥ãªãã£ä¿è·ã®ããã®ãµãŒãã¹ã¡ãã·ã¥ã®äœ¿çšã
- ãšããžã§ã®AIïŒ ããã©ãŒãã³ã¹ãšããŒãœãã©ã€ãŒãŒã·ã§ã³ãåäžãããããã®ãšããžã§ã®AIãšæ©æ¢°åŠç¿ã®äœ¿çšã
- ãšããžãã€ãã£ãã¢ããªã±ãŒã·ã§ã³ïŒ ç¹ã«ãšããžã§å®è¡ããããã«èšèšãããã¢ããªã±ãŒã·ã§ã³ã®éçºã
ãŸãšã
ããã³ããšã³ããšããžã³ã³ãã¥ãŒãã£ã³ã°ããã«ããªãŒãžã§ã³åé·æ§ãå°ççãã§ã€ã«ãªãŒããŒã¯ãé«å¯çšæ§ã§é«æ§èœããã€å埩åã®ããã°ããŒãã«ã¢ããªã±ãŒã·ã§ã³ãæ§ç¯ããããã®äžå¯æ¬ ãªæŠç¥ã§ããããã³ããšã³ããè€æ°ã®å°ççãªãŒãžã§ã³ã«åæ£ãããå ç¢ãªãã§ã€ã«ãªãŒããŒã¡ã«ããºã ãå®è£ ããããšã§ããªãŒãžã§ã³èŠæš¡ã®é害ãçºçããå Žåã§ããäžçäžã®ãŠãŒã¶ãŒãã¢ããªã±ãŒã·ã§ã³ã«ã¢ã¯ã»ã¹ãç¶ããããããã«ä¿èšŒã§ããŸãããããã®æŠç¥ãåãå ¥ããŠãåªãããŠãŒã¶ãŒãšã¯ã¹ããªãšã³ã¹ãæäŸããã°ããŒãã«åžå Žã§ã®ç«¶äºåªäœæ§ãç¶æããŸãããã